package chai.ning.statics;

/**
 * 1、如果子类中声明了与父类同名同参的(可见的)类方法，就说子类类方法隐藏(hide)了父类同名的类方法
 * 2、父类中的类方法属于父类，子类是不可以继承的(但可以通过子类类名来访问父类中的类方法)
 * 3、父类中的类方法可以在子类中被隐藏，但绝不能在子类中被重写为实例方法
 * 4、父类中的实例方法可以被子类所重写，但重写后的方法绝不能是static修饰的
 */
public class Oval extends Shape {
	
	static {
		System.out.println( "Oval : static initializer");
	}
	
	// 子类可以重写声明父类中已经声明过的(可见的)类方法
	// 此时，我们说 子类中同名的 类方法【隐藏】 了父类中同名的类方法
	public static void show() {
		System.out.println( "Oval.show()" );
	}
	
	/*
	// This instance method cannot override the static method from Shape
	public void show1() {
		System.out.println( "Oval.show1()" );
	}
	*/
	
	/*
	// This static method cannot hide the instance method from Shape
	public static void show2() {
		System.out.println( "Oval#show2()" );
	}
	*/

}
